package other;

import java.util.LinkedList;
import java.util.Queue;

public class MyStack {
    //两个队列实现
//    Queue<Integer> q;
//    Queue<Integer> temp; //备份队列
//
//    public MyStack() {
//        q=new LinkedList<>();
//        temp=new LinkedList<>();
//    }
//
//    public void push(int x) {
//        //倒序插入
//        //先放进辅助队列
//        temp.offer(x);
//        //将前面的备份起来
//        while(q.size()!=1)
//            temp.offer(q.remove());
//        while(!temp.isEmpty())
//            q.offer(temp.poll());
//    }
//
//    public int pop() {
//        return q.poll();
//    }
//
//    public int top() {
//        //队尾刚插入的元素
//        return  q.peek();
//    }
//
//    public boolean empty() {
//        return q.isEmpty();
//    }

    Queue<Integer> q;

    public MyStack() {
        q=new LinkedList<>();
    }

    public void push(int x) {
        //前面 len-1 个插入尾部
        q.offer(x);
        int size=q.size();
        //将前面的备份起来
        while(size--!=1)
            q.offer(q.poll());
    }

    public int pop() {
        return q.poll();
    }

    public int top() {
        return  q.peek();
    }

    public boolean empty() {
        return q.isEmpty();
    }
}
